home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Night Owl 9
/
Night Owl CD-ROM (NOPV9) (Night Owl Publisher) (1993).ISO
/
009a
/
mblib10.zip
/
REVISION.HST
< prev
Wrap
Text File
|
1993-03-07
|
5KB
|
87 lines
+ = added
- = removed
* = changed
! = fixed bug - or at least replaced by another one
Revisions to beta 1:
+ Additions to the .H file to allow usage in C++
* Correct working with C++ has been verified.
+ Add warning to .DOC: FSC-0001 covers 2D adressing only. Zone and point fields
aren't used correctly by all software!!
! The *_prevto () family contained a major bug: if the record number passed to
the function is lower than 500, the function returned that same number.
Fixed.
* Used TDSTRIP on the .OBJ files to remove junk before adding them to the .LIB
files. Stupid that I didn't do that before. I tried, but for some reason it
didn't work. Now it did, though. :-)
+ msg_write_new would accept non-existent (<= 0 or > 200) board numbers. Added
a routine to check the board number and return an error if need be.
! The internal Pascal <--> C format conversion routine would overwrite
existing records when writing headers to disk. Fixed.
! When making consecutive calls to msg_write_new, not all messages would be
written to the correct record number. This seemed to be related to internal
DOS buffering: after writing a record, the filelength doesn't seem to have
increased. If the message base is closed and reopened, everything's fine.
This problem turned out to be caused by the fact that I used the good old
filelength () call (a level 1 call) on a stream (which is subject to level 2
handling). But since a stream buffers writes, a level 1 call won't see any
appended bytes until the stream buffer is flushed. Therefore, the following
construction
fwrite (& buffer, sizeof (MSGHDR_RECORD), 1, f_msghdr);
len = filelength (fileno (f_msghdr));
will return the number of bytes *before* the fwrite, unless the stream
buffer has overflowed and was flushed - but the returned length is probably
incorrect.
Replaced all this by a routine that utilizes level 2 calls only.
! Corrected a confusing typo in the errorstring example in the documentation.
Revisions to BETA 2:
! net_next () contained a small but pesky bug, causing it not to work. :-)
Fixed.
+ Added the msg_fixup4d () and net_fixup4d () functions to overcome the problem
caused by the fact that the zone and point fields in the message headers are
not supported by FSC-0001. Some message editors and mailers use these fields
for something else or not at all. The new functions convert the header fields
into INTL and TOPT/FMPT kludges.
- Removed the #include <dir.h> in MB_LIB.H. It wasn't needed anymore, and it
got in the way of the C++ users.
! Because I hadn't read the C reference carefully enough :-) I had made a
mistake when converting a time structure into a formatted message header
field. This caused messages to be written on the most unlikely dates. Fixed.
While I was at it I've changed the netmail header formatting to be 100%
FSC-0001 compliant.
- MA_UNSENT didn't do what I expected it to do. In the WRITEMSG.C example I'm
no longer messing around with it. :-)
* Ran the .DOC through the spell checker after suggestions by Albert Roos.
Pfffff....... any idea what a mess it is when you run C source examples
through Word Perfect? :-(
* Changed a few variable types which might have caused portability problems
in the future.
! The key file didn't always give a clean compile. It does now.
Revisions to BETA3:
* Changed the names of a few internal functions in order to avoid conflicts
in the future, for example when MB_lib will be used with the C version of
RADU (RA Door Lib - RADO? RADL? RADOL? Suggestions welcome...)
! The net_write routine returned a NULL instead of a nonzero integer on file
creation errors. Fixed.
! I had made a stupid mistake involving some pointer declarations an a bit of
tricky mixed-model assembly routines. Fixed. I hope.
+ Tested MB_lib in a DesqView environment, just to be sure. No problems found.
! Believe it or not, but I've found yet another bug in the *prev* search
routines... :-( Comparing signed and unsigned integers caused an infinite
loop when searching backward under special circumstances.
March 1993: Version 1.0 released!
Ideas for a next version (if and when):
+ Thinking about a txt_merge function. This could easily be done by dumping a
message text to the txt_add () function, if there wasn't the problem that the
string print routine is supposed to accept a (char *) and nothing more - so
how do we pass the text handle to that routine? Could be done by means of an
internal global, but I consider this unelegant.
* Performance could be increased by utilizing massive internal buffering.
However, precautions should be taken to avoid trouble with file sharing!
(The buffers should be shared as well, I think. Any ideas?)